import axios from 'axios';
import { ElMessage } from 'element-plus'; // 引入 ElMessage

const baseURL = "/api";

const api = axios.create({
  baseURL,
  timeout: 10000, // 请求超时时间
});

// 封装通用的 GET 请求（查）
export const getRequest = async (url, params = {}) => {
  try {
    const response = await api.get(url, { params });
    return response.data;
  } catch (error) {
    console.error('GET 请求出错:', error);
    ElMessage.error('GET 请求出错，请稍后重试'); // 显示错误提示悬浮框
    throw error;
  }
};

// 封装通用的 POST 请求（增）
export const postRequest = async (url, data = {}) => {
  try {
    const response = await api.post(url, data);
    return response.data;
  } catch (error) {
    console.error('POST 请求出错:', error);
    ElMessage.error('POST 请求出错，请稍后重试'); // 显示错误提示悬浮框
    throw error;
  }
};

// 封装通用的 PUT 请求（改）
export const putRequest = async (url, data = {}) => {
  try {
    const response = await api.put(url, data);
    return response.data;
  } catch (error) {
    console.error('PUT 请求出错:', error);
    ElMessage.error('PUT 请求出错，请稍后重试'); // 显示错误提示悬浮框
    throw error;
  }
};

// 封装通用的 DELETE 请求（删）
export const deleteRequest = async (url, params = {}) => {
  try {
    const response = await api.delete(url, { params });
    return response.data;
  } catch (error) {
    console.error('DELETE 请求出错:', error);
    ElMessage.error('DELETE 请求出错，请稍后重试'); // 显示错误提示悬浮框
    throw error;
  }
};

// 原有的 login 方法保持不变
export const login = async (username, password) => {
  try {
    const response = await api.post('/login', {
      username,
      password,
    });
    return response.data;
  } catch (error) {
    console.error('请求出错:', error);
    ElMessage.error('登录请求出错，请稍后重试'); // 显示错误提示悬浮框
    throw error;
  }
};